import { MtEntity } from '@/api/manager/mt'
import { VmpEntity } from '../vmp/interface'
import { PollEntity } from '../poll/interface'
/**盒子的位置信息*/
export interface boxPositionsEntity {
	/**hdu别名 */
	hdu_alias: string
	/**设备id号_通道索引号 */
	hdu_id: string
	/**方格高度 */
	box_height: number
	/** 方格横坐标*/
	box_x: number
	/**方格宽度*/
	box_width: number
	/**方格纵坐标*/
	box_y: number
	/**父容器宽度*/
	parent_box_width: number
}
/**包含风格信息(位置 名称 风格id)*/
export interface BoxInfoEntity {
	/**电视墙风格id */
	id: string
	/**电视墙风格名称*/
	name: string
	/**位置信息 */
	positions: Array<boxPositionsEntity>
}
export type FetchTvwallStylesResponseEntity = Array<BoxInfoEntity>
export interface FetchStylesByMeetingMoidResponseEntity {
	/**会议在使用的电视墙预案名*/
	name: string
	styles: Array<{ id: string /** 电视墙风格id*/; name: string /**电视墙风格名称 */ }>
}
export interface FetchStylesByMeetingMoidDetailResponseEntity {
	/**会议在使用的电视墙预案名*/
	name: string
	styles: Array<StyleDetail & { style_id: string }>
}
/**四分屏成员*/
export type SpiltEntity = MtEntity & {
	/**四分屏索引 */
	sub_chn_index: number
	/**终端通道 id*/
	mt_chn_id: number
}
/**电视墙成员 */
export type TvWallMemberItemEntity = {
	mt_id: string
	account: string
	account_type: string // 1-moid;4-非系统邮箱;5-e164号;6-电话;7-ip地址;8-别名@ip(监控前端);
	name: string /**名称；仅作展示使用，下参无效，最大字符长度：128个字节 */
	e164: string // e164，仅用于会控返回
	mt_key: string // mtKey，仅用于会控返回
	mt_type: string // mtType，仅用于会控返回
	/**会议e164号，级联会议时为本级会议e164号*/
	conf_e164: string
	// 头像，仅作为显示使用，无需下参
	portrait: string
	stream: number //是否多流，仅用于会控返回 0-否 1-是
	doubleflow: number //双流权限
	/**通道是否在线，仅用于会控返回 0-否  1-是 */
	is_online: number
	channel_index: number // 通道索引0或1
	mute: number //哑音，仅用于会控返回 0-未哑音; 1-哑音;
	/**账号密级，仅作为显示使用，无需下参 */
	security_level: number
	moid: string
	mtid: string
	/**是否在线 0 不在线 1 在线 */
	online: number
	/**设备id号_通道索引号 */
	hdu_id: string
	/**别名 */
	hdu_alias: string
	/**hdu风格*/
	hdu_style: number
	/** 通道是否被当前会议占用，仅用于会控返回 0-否;1-是;*/
	is_mine: number
	/**通道是否使用，仅用于会控返回 0-否;1-是;*/
	is_used: number
	/**终端通道 id */
	mt_chn_id: number
	/** 跟随类型 1-会控指定；2-发言人跟随；3-管理方跟随；4-会议轮询跟随；5-单通道轮询 6-选看画面合成；7-批量轮询(仅返回数据时使用); 8-自主多画面;9-四分屏;10-内容共享跟随;*/
	member_type: number
	spilt: Array<SpiltEntity>
	poll: PollEntity
	vmp: VmpEntity
}
export type batchPollEntity = PollEntity & {
	/**批量轮询id,非预案id,用于删除批量轮询时定位风格(删除时无style), 只返回*/
	batch_id: string
}
export interface StyleDetail {
	// 电视墙模式 1-定制画面; 2-批量轮询;
	mode: number
	/**是否显示电视墙别名，默认为0 0-否;1-是;*/
	show_mt_name: number
	/**批量轮询 */
	batch_poll: batchPollEntity
	/**电视墙成员 */
	members: Array<TvWallMemberItemEntity>
}
export interface StartParamsMixEntity {
	/**混音预案id，跨级建云会议机房创会需要，不对外*/
	id?: string
	/**混音模式1-智能混音;2-定制混音;*/
	mode: number
	/**预案名称*/
	name: string
	/**混音终端成员*/
	members: Array<
		Partial<{
			e164: string
			mt_id: string
			mt_ip: string
			mt_key: string
			name: string
			conf_e164: string
			portrait?: string
			account: string
			protocol: string
			often_mt: number
			stream: number
			interactive_mt: number
			mute: number
			online: number
			account_type: number
			bitrate: number
			mt_type: number
		}>
	>
}
export interface changeMixMembersEntity {
	e164: string
	mt_id: string
	mt_ip: string
	mt_key: string
	name: string
	conf_e164: string
	portrait?: string
	account: string
	protocol: string
	often_mt?: number
	stream: number
	interactive_mt: number
	online: number
	account_type: number
	bitrate: number
	mt_type: number
}
/***********************************************************************电视墙预案******************************************** */
/**接口返回预案实体 */
export type PlanResponseEntity = Array<{
	/**预案名称 */
	name: string
	/**预案id */
	id: string
}>
export type PlanDetailEntity = {
	id: string
	name: string
	success: 1
	tvwalls: Array<{
		/**电视墙模式1-定制画面;2-批量轮询;*/ mode: number
		/**电视墙风格moid*/
		style_id: string
		/**是否显示终端名称*/
		show_mt_name: number
		/**批量轮询*/
		batch_poll?: {
			/**轮询次数，0表示无限次轮询 */
			num: number
			/** 轮询间隔时间(秒)*/
			keep_time: number
			// 轮询模式
			// 1-视频轮询;
			// 3-音视频轮询;
			mode: number
			/**轮询成员*/
			members: Array<MtEntity>
		}
		members?: Array<TvWallMemberItemEntity>
	}>
}
/***********************************************************************轮询预案******************************************** */
/**轮询预案详情 */
export type PlanResponsePollEntity = {
	id: string
	members: Array<MtEntity>
	mode: number
	name: string
}
/**获取的音视频通道 */
export interface MTChnInfoEntity {
	a_snd_chn_id: number
	v_snd_chn_id: number
}
export interface VolumeEntity {
	/**电视墙是否静音 0否 1是*/
	silence: number
	volume: number
}
/****************************************************************************错误返回************************************************ */
export type ErrorEntity = {
	success: 0
	error_code: number
	description: string
}
